package com.pe.pgn.clubpgn.domain;

import java.math.BigDecimal;
import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import org.springframework.format.annotation.DateTimeFormat;

@Entity
@Table(name = "clpm_venta")
public class ClpmVenta extends CamposAuditoria {

	private static final long serialVersionUID = 5728325201049537512L;
	private Long id;
    private Long idPromocionConsumo;
    private Long idClientePersona;
	private String coCodigoTarjetaPersona; 
    private Long idClienteEmpresa;
	private String coCodigoTarjetaEmpresa;
    private Long idProducto;
    private String coCodeManguera;
    private String coCodeCara;
    private String coCodeSurtidor;
    private String coCodeIsla;
    private String coCodeEstacion;
    private String coSerie;
    private String coNumero;
    private String coCodeSerialImpresora;
    private String coCodeTurnoHorario;
    private String coTipoVentaManual;
    private Calendar daFechaVenta;
    private Calendar daFechaProceso;
    private Calendar daFechaApertura;
    private Calendar daFechaLecturaInicio;
    private Calendar daFechaLecturaFin;
    private BigDecimal vaLecturaInicio;
    private BigDecimal vaLecturaFinal;
    private String coRuc;
    private BigDecimal vaCantidad;
    private BigDecimal vaPrecioUnitario;
    private BigDecimal vaRecaudo;
    private BigDecimal vaValorVenta;
    private BigDecimal vaImpuesto;    
    private BigDecimal vaPrecioVenta;
    private String dePlaca;    
    private String coRecibo;
    private String coReciboAnulado;    
    private String stVenta;
    private String stOnline;
    private String deMensaje;
    private Long vaPuntos;
    private String coCodeValeCredito;
    private String coCodeValePromocionConsumo;
    private BigDecimal VaMontoPromocionConsumo;
    private String deObservaciones;
    private String stModificado;
    
    private String deVenta;
    private String fechaVenta;
    private String fechaCreacion;
    private String fechaProceso;
    private String fechaApertura;
    private String fechaLecturaInicio;
    private String fechaLecturaFin;
    private String clientePersona;
    private String deEstacion;
    
    @Id
    @Column(name="id")
    @SequenceGenerator(name="seqventa", sequenceName="seq_venta")
    @GeneratedValue(generator="seqventa")
	public Long getId() {
		return id;
	}

    @Column(name = "clpm_promocion_consumo")
	public Long getIdPromocionConsumo() {
		return idPromocionConsumo;
	}

    @Column(name = "clpb_cliente_persona")
	public Long getIdClientePersona() {
		return idClientePersona;
	}

    @Column(name = "co_codigo_tarjeta_persona", length = 20)
	public String getCoCodigoTarjetaPersona() {
		return coCodigoTarjetaPersona;
	}

    @Column(name = "clpb_cliente_empresa")
	public Long getIdClienteEmpresa() {
		return idClienteEmpresa;
	}

    @Column(name = "co_codigo_tarjeta_empresa", length = 20)
	public String getCoCodigoTarjetaEmpresa() {
		return coCodigoTarjetaEmpresa;
	}

    @Column(name = "clpb_producto")
	public Long getIdProducto() {
		return idProducto;
	}

    @Column(name = "co_code_manguera")
	public String getCoCodeManguera() {
		return coCodeManguera;
	}

    @Column(name = "co_code_cara")
	public String getCoCodeCara() {
		return coCodeCara;
	}

    @Column(name = "co_code_surtidor")
	public String getCoCodeSurtidor() {
		return coCodeSurtidor;
	}

    @Column(name = "co_code_isla")
	public String getCoCodeIsla() {
		return coCodeIsla;
	}

    @Column(name = "co_code_estacion")
	public String getCoCodeEstacion() {
		return coCodeEstacion;
	}

    @Column(name = "co_serie")
	public String getCoSerie() {
		return coSerie;
	}

    @Column(name = "co_numero")
	public String getCoNumero() {
		return coNumero;
	}

    @Column(name = "co_code_serial_impresora")
	public String getCoCodeSerialImpresora() {
		return coCodeSerialImpresora;
	}

    @Column(name = "co_code_turno_horario")
	public String getCoCodeTurnoHorario() {
		return coCodeTurnoHorario;
	}

    @Column(name = "da_fecha_venta")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaVenta() {
		return daFechaVenta;
	}

    @Column(name = "da_fecha_proceso")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaProceso() {
		return daFechaProceso;
	}

    @Column(name = "da_fecha_apertura")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaApertura() {
		return daFechaApertura;
	}

    @Column(name = "da_fecha_lectura_inicio")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaLecturaInicio() {
		return daFechaLecturaInicio;
	}

    @Column(name = "da_fecha_lectura_fin")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaLecturaFin() {
		return daFechaLecturaFin;
	}

    @Column(name = "va_lectura_inicio")
	public BigDecimal getVaLecturaInicio() {
		return vaLecturaInicio;
	}

    @Column(name = "va_lectura_final")
	public BigDecimal getVaLecturaFinal() {
		return vaLecturaFinal;
	}

    @Column(name = "co_ruc")
	public String getCoRuc() {
		return coRuc;
	}

    @Column(name = "va_cantidad")
	public BigDecimal getVaCantidad() {
		return vaCantidad;
	}

    @Column(name = "va_precio_unitario")
	public BigDecimal getVaPrecioUnitario() {
		return vaPrecioUnitario;
	}

    @Column(name = "va_recaudo")
	public BigDecimal getVaRecaudo() {
		return vaRecaudo;
	}

    @Column(name = "va_valor_venta")
	public BigDecimal getVaValorVenta() {
		return vaValorVenta;
	}

    @Column(name = "va_impuesto")
	public BigDecimal getVaImpuesto() {
		return vaImpuesto;
	}

    @Column(name = "va_precio_venta")
	public BigDecimal getVaPrecioVenta() {
		return vaPrecioVenta;
	}

    @Column(name = "de_placa")
	public String getDePlaca() {
		return dePlaca;
	}

    @Column(name = "co_recibo")
	public String getCoRecibo() {
		return coRecibo;
	}

    @Column(name = "co_recibo_anulado")
	public String getCoReciboAnulado() {
		return coReciboAnulado;
	}

    @Column(name = "st_venta")
	public String getStVenta() {
		return stVenta;
	}

    @Column(name = "st_online")
	public String getStOnline() {
		return stOnline;
	}

    @Column(name = "de_mensaje")
	public String getDeMensaje() {
		return deMensaje;
	}

    @Column(name = "va_puntos")
	public Long getVaPuntos() {
		return vaPuntos;
	}

    @Column(name = "co_code_vale_credito")
	public String getCoCodeValeCredito() {
		return coCodeValeCredito;
	}
    
    @Column(name = "co_tipo_venta_manual")
    public String getCoTipoVentaManual() {
		return coTipoVentaManual;
	}

    @Column(name = "co_code_vale_promocion")
	public String getCoCodeValePromocionConsumo() {
		return coCodeValePromocionConsumo;
	}

	@Column(name = "co_usuario_creador", updatable = false, length = 30)
	public String getCoUsuarioCreador() {
		return coUsuarioCreador;
	}

    @Column(name = "da_fecha_creacion", updatable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaCreacion() {
		return daFechaCreacion;
	}

	@Column(name = "co_usuario_modificador", length = 30)
	public String getCoUsuarioModificador() {
		return coUsuarioModificador;
	}

    @Column(name = "da_fecha_modificacion")
    @Temporal(TemporalType.TIMESTAMP)
    @DateTimeFormat(style = "S-")
	public Calendar getDaFechaModificacion() {
		return daFechaModificacion;
	}    

    @Column(name = "va_monto_vale_promocion")
    public BigDecimal getVaMontoPromocionConsumo() {
		return VaMontoPromocionConsumo;
	}

    @Column(name = "de_observaciones")
	public String getDeObservaciones() {
		return deObservaciones;
	}
    
    @Column(name = "st_modificado")
    public String getStModificado() {
		return stModificado;
	}

	@Override
	public String toString() {
		return "ClpmVenta [coCodeCara=" + coCodeCara + ", coCodeEstacion="
				+ coCodeEstacion + ", coCodeIsla=" + coCodeIsla
				+ ", coCodeManguera=" + coCodeManguera
				+ ", coCodeSerialImpresora=" + coCodeSerialImpresora
				+ ", coCodeSurtidor=" + coCodeSurtidor
				+ ", coCodigoTarjetaEmpresa=" + coCodigoTarjetaEmpresa
				+ ", coCodigoTarjetaPersona=" + coCodigoTarjetaPersona
				+ ", coCodeTurnoHorario=" + coCodeTurnoHorario
				+ ", coCodeValeCredito=" + coCodeValeCredito
				+ ", coNumero=" + coNumero + ", coRecibo=" + coRecibo
				+ ", coReciboAnulado=" + coReciboAnulado + ", coRuc=" + coRuc
				+ ", coSerie=" + coSerie + ", coUsuarioCreador="
				+ coUsuarioCreador + ", coUsuarioModificador="
				+ coUsuarioModificador + ", daFechaApertura=" + daFechaApertura
				+ ", daFechaCreacion=" + daFechaCreacion
				+ ", daFechaLecturaFin=" + daFechaLecturaFin
				+ ", daFechaLecturaInicio=" + daFechaLecturaInicio
				+ ", daFechaModificacion=" + daFechaModificacion
				+ ", daFechaProceso=" + daFechaProceso + ", daFechaVenta="
				+ daFechaVenta + ", deMensaje=" + deMensaje + ", dePlaca="
				+ dePlaca + ", id=" + id
				+ ", idClienteEmpresa=" + idClienteEmpresa
				+ ", idClientePersona=" + idClientePersona + ", idProducto="
				+ idProducto + ", idPromocionConsumo=" + idPromocionConsumo
				+ ", stOnline=" + stOnline + ", stVenta=" + stVenta
				+ ", vaCantidad=" + vaCantidad + ", vaImpuesto=" + vaImpuesto
				+ ", vaLecturaFinal=" + vaLecturaFinal + ", vaLecturaInicio="
				+ vaLecturaInicio +  ", vaPrecioUnitario="
				+ vaPrecioUnitario + ", vaPrecioVenta=" + vaPrecioVenta
				+ ", vaPuntos=" + vaPuntos 
				+ ", vaRecaudo=" + vaRecaudo + ", vaValorVenta=" + vaValorVenta 
				+ ", coCodeValePromocionConsumo=" +coCodeValePromocionConsumo + "]";
	}	

	public String toTrama() {
		
		return "ClpmVenta [coCodeCara=" + coCodeCara 
		+ ", coCodeEstacion=" + coCodeEstacion 
		+ ", coCodeIsla=" + coCodeIsla
		+ ", coCodeManguera=" + coCodeManguera
		+ ", coCodeSerialImpresora=" + coCodeSerialImpresora
		+ ", coCodeSurtidor=" + coCodeSurtidor
		+ ", coCodigoTarjetaEmpresa=" + coCodigoTarjetaEmpresa
		+ ", coCodigoTarjetaPersona=" + coCodigoTarjetaPersona
		+ ", coCodeTurnoHorario=" + coCodeTurnoHorario
		+ ", coCodeValeCredito=" + coCodeValeCredito
		+ ", coNumero=" + coNumero 
		+ ", coRecibo=" + coRecibo
		+ ", coReciboAnulado=" + coReciboAnulado 
		+ ", coRuc=" + coRuc
		+ ", coSerie=" + coSerie 
		+ ", daFechaApertura=" + daFechaApertura
		+ ", daFechaLecturaFin=" + daFechaLecturaFin
		+ ", daFechaLecturaInicio=" + daFechaLecturaInicio
		+ ", daFechaProceso=" + daFechaProceso 
		+ ", daFechaVenta=" + daFechaVenta 
		+ ", dePlaca=" + dePlaca 
		+ ", idClienteEmpresa=" + idClienteEmpresa
		+ ", idClientePersona=" + idClientePersona 
		+ ", idProducto=" + idProducto 
		+ ", idPromocionConsumo=" + idPromocionConsumo
		+ ", stOnline=" + stOnline 
		+ ", vaCantidad=" + vaCantidad 
		+ ", vaImpuesto=" + vaImpuesto
		+ ", vaLecturaFinal=" + vaLecturaFinal 
		+ ", vaLecturaInicio=" + vaLecturaInicio 
		+  ", vaPrecioUnitario=" + vaPrecioUnitario 
		+ ", vaPrecioVenta=" + vaPrecioVenta
		+ ", vaRecaudo=" + vaRecaudo 
		+ ", vaValorVenta=" + vaValorVenta 
		+ ", coCodeValePromocionConsumo=" +coCodeValePromocionConsumo + "]";
	}

	@Override
	public boolean equals(Object o) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return 0;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public void setIdPromocionConsumo(Long idPromocionConsumo) {
		this.idPromocionConsumo = idPromocionConsumo;
	}

	public void setIdClientePersona(Long idClientePersona) {
		this.idClientePersona = idClientePersona;
	}

	public void setCoCodigoTarjetaPersona(String coCodigoTarjetaPersona) {
		this.coCodigoTarjetaPersona = coCodigoTarjetaPersona;
	}

	public void setIdClienteEmpresa(Long idClienteEmpresa) {
		this.idClienteEmpresa = idClienteEmpresa;
	}

	public void setCoCodigoTarjetaEmpresa(String coCodigoTarjetaEmpresa) {
		this.coCodigoTarjetaEmpresa = coCodigoTarjetaEmpresa;
	}

	public void setIdProducto(Long idProducto) {
		this.idProducto = idProducto;
	}

	public void setCoCodeManguera(String coCodeManguera) {
		this.coCodeManguera = coCodeManguera;
	}

	public void setCoCodeCara(String coCodeCara) {
		this.coCodeCara = coCodeCara;
	}

	public void setCoCodeSurtidor(String coCodeSurtidor) {
		this.coCodeSurtidor = coCodeSurtidor;
	}

	public void setCoCodeIsla(String coCodeIsla) {
		this.coCodeIsla = coCodeIsla;
	}

	public void setCoCodeEstacion(String coCodeEstacion) {
		this.coCodeEstacion = coCodeEstacion;
	}

	public void setCoSerie(String coSerie) {
		this.coSerie = coSerie;
	}

	public void setCoNumero(String coNumero) {
		this.coNumero = coNumero;
	}

	public void setCoCodeSerialImpresora(String coCodeSerialImpresora) {
		this.coCodeSerialImpresora = coCodeSerialImpresora;
	}

	public void setCoCodeTurnoHorario(String coCodeTurnoHorario) {
		this.coCodeTurnoHorario = coCodeTurnoHorario;
	}

	public void setDaFechaVenta(Calendar daFechaVenta) {
		this.daFechaVenta = daFechaVenta;
	}

	public void setDaFechaProceso(Calendar daFechaProceso) {
		this.daFechaProceso = daFechaProceso;
	}

	public void setDaFechaApertura(Calendar daFechaApertura) {
		this.daFechaApertura = daFechaApertura;
	}

	public void setDaFechaLecturaInicio(Calendar daFechaLecturaInicio) {
		this.daFechaLecturaInicio = daFechaLecturaInicio;
	}

	public void setDaFechaLecturaFin(Calendar daFechaLecturaFin) {
		this.daFechaLecturaFin = daFechaLecturaFin;
	}

	public void setVaLecturaInicio(BigDecimal vaLecturaInicio) {
		this.vaLecturaInicio = vaLecturaInicio;
	}

	public void setVaLecturaFinal(BigDecimal vaLecturaFinal) {
		this.vaLecturaFinal = vaLecturaFinal;
	}

	public void setCoRuc(String coRuc) {
		this.coRuc = coRuc;
	}

	public void setVaCantidad(BigDecimal vaCantidad) {
		this.vaCantidad = vaCantidad;
	}

	public void setVaPrecioUnitario(BigDecimal vaPrecioUnitario) {
		this.vaPrecioUnitario = vaPrecioUnitario;
	}

	public void setVaRecaudo(BigDecimal vaRecaudo) {
		this.vaRecaudo = vaRecaudo;
	}

	public void setVaValorVenta(BigDecimal vaValorVenta) {
		this.vaValorVenta = vaValorVenta;
	}

	public void setVaImpuesto(BigDecimal vaImpuesto) {
		this.vaImpuesto = vaImpuesto;
	}

	public void setVaPrecioVenta(BigDecimal vaPrecioVenta) {
		this.vaPrecioVenta = vaPrecioVenta;
	}

	public void setDePlaca(String dePlaca) {
		this.dePlaca = dePlaca;
	}

	public void setCoRecibo(String coRecibo) {
		this.coRecibo = coRecibo;
	}

	public void setCoReciboAnulado(String coReciboAnulado) {
		this.coReciboAnulado = coReciboAnulado;
	}

	public void setStVenta(String stVenta) {
		this.stVenta = stVenta;
	}

	public void setStOnline(String stOnline) {
		this.stOnline = stOnline;
	}

	public void setDeMensaje(String deMensaje) {
		this.deMensaje = deMensaje;
	}

	public void setVaPuntos(Long vaPuntos) {
		this.vaPuntos = vaPuntos;
	}

	public void setCoCodeValeCredito(String coCodeValeCredito) {
		this.coCodeValeCredito = coCodeValeCredito;
	}

	public void setCoCodeValePromocionConsumo(String coCodeValePromocionConsumo) {
		this.coCodeValePromocionConsumo = coCodeValePromocionConsumo;
	}

	public void setVaMontoPromocionConsumo(BigDecimal vaMontoPromocionConsumo) {
		VaMontoPromocionConsumo = vaMontoPromocionConsumo;
	}		
	
	public void setDeObservaciones(String deObservaciones) {
		this.deObservaciones = deObservaciones;
	}

	public void setStModificado(String stModificado) {
		this.stModificado = stModificado;
	}
	
	/*Objectos Transient*/
	@Transient
	public String getFechaVenta() {
		return fechaVenta;
	}

	public void setFechaVenta(String fechaVenta) {
		this.fechaVenta = fechaVenta;
	}
	
	
	
	@Transient
	public String getFechaCreacion() {
		return fechaCreacion;
	}

	public void setFechaCreacion(String fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	@Transient
	public String getFechaProceso() {
		return fechaProceso;
	}

	public void setFechaProceso(String fechaProceso) {
		this.fechaProceso = fechaProceso;
	}

	@Transient
	public String getFechaApertura() {
		return fechaApertura;
	}

	public void setFechaApertura(String fechaApertura) {
		this.fechaApertura = fechaApertura;
	}

	@Transient
	public String getFechaLecturaInicio() {
		return fechaLecturaInicio;
	}

	public void setFechaLecturaInicio(String fechaLecturaInicio) {
		this.fechaLecturaInicio = fechaLecturaInicio;
	}
	
	@Transient
	public String getFechaLecturaFin() {
		return fechaLecturaFin;
	}

	public void setFechaLecturaFin(String fechaLecturaFin) {
		this.fechaLecturaFin = fechaLecturaFin;
	}
	
	@Transient
	public String getClientePersona() {
		return clientePersona;
	}

	public void setClientePersona(String clientePersona) {
		this.clientePersona = clientePersona;
	}

	@Transient
	public String getDeEstacion() {
		return deEstacion;
	}

	public void setDeEstacion(String deEstacion) {
		this.deEstacion = deEstacion;
	}

	public void setCoTipoVentaManual(String coTipoVentaManual) {
		this.coTipoVentaManual = coTipoVentaManual;
	}

	@Transient
	public String getDeVenta() {
		return deVenta;
	}

	public void setDeVenta(String deVenta) {
		this.deVenta = deVenta;
	}
}
